package com.sport.utils;

import cn.hutool.core.util.RandomUtil;
import com.sport.model.Result;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.UUID;

public class FileUtils {

    public static final String path = "D:/javaproject/sport/image/";

    public static String upload( MultipartFile file) {
        if (file.isEmpty()) {
            throw new RuntimeException("上传文件为空,请选择一个文件上传");
        }
        try {
            createDir(path);
            if (file.getOriginalFilename() != null) {
                String filename = filename(file.getOriginalFilename());
                //使用原始文件名进行保存
                String filePath = path + filename;
                file.transferTo(Paths.get(filePath));
                return filename;
            }
        } catch (IOException e) {
        }
        return null;
    }

    private static void createDir(String path) {
        // 这里是保存文件到本地系统的路径，可以自定义
        File directory = new File(path);
        if (!directory.exists()) {
            directory.mkdirs();
        }
    }

    private static String filename(String fileName) {
        //规则：1.UU重复率小（UUID.randomUUID()）2.时间戳重复几率0，但是会有线程问题（system.currentTimeMILLIS()）
        return RandomUtil.randomString(32) + fileName.substring(fileName.lastIndexOf("."));
    }
}